import { Injectable } from '@angular/core';

@Injectable({
  providedIn: 'root'
})
export class NotificationService {
  notificationLoadComplete: Boolean = false;
  defaultOption: {

  };

  constructor() {

  }

  /**
   *
   * @param title：标题
   * @param option：配置（不传则使用全局默认配置）
   */

  notificationOpen(title, option?: Object) {
    // 先检查浏览器是否支持
    if (!('Notification' in window)) {
      alert('This browser does not support desktop notification');
    } else if (Notification.permission === 'granted') { // 检查用户是否同意接受通知
      // If it's okay let's create a notification
      return new Notification(title, Object.assign(this.defaultOption, option));
    } else if (Notification.permission !== 'denied') { // 否则我们需要向用户获取权限
      Notification.requestPermission(function (permission) {
        // 如果用户同意，就可以向他们发送通知
        if (permission === 'granted') {
          return new Notification(title, Object.assign(this.defaultOption, option));
        }
      });
    }
    // 最后，如果执行到这里，说明用户已经拒绝对相关通知进行授权
    // 出于尊重，我们不应该再打扰他们了
  }

}
